import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

@Entity()
export class FieldType {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ unique: true })
  key: string; // 字段键名，如 'name', 'phone' 等

  @Column()
  label: string; // 字段显示名称，如 '姓名', '联系电话' 等

  @Column()
  type: string; // 字段类型：'text', 'tel', 'email', 'textarea', 'select' 等

  @Column({ type: 'json', nullable: true })
  options?: string[]; // 选择框的选项（仅当type为select时使用）

  @Column({ default: false })
  required: boolean; // 是否必填

  @Column({ default: true })
  enabled: boolean; // 是否启用

  @Column({ default: 0 })
  sortOrder: number; // 排序顺序

  @Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
  createdAt: Date;

  @Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', onUpdate: 'CURRENT_TIMESTAMP' })
  updatedAt: Date;
}